1e32e0e5cfefe361a4f226d7c74280ae53a8f5e5,src/com/redhat/ceylon/compiler/codegen/ExpressionTransformer.java,ExpressionTransformer,transformAssignment,#Node#Term#JCExpression#JCExpression#,243
Before Change
if (Decl.withinMethod(decl)) {
result = at(op).Apply(List.<JCTree.JCExpression>nil(),
makeIdentOrSelect(expr, decl.getName() + "$setter", Util.getSetterName(decl.getName())),
List.<JCTree.JCExpression>of(rhs));
} else {
result = at(op).Apply(List.<JCTree.JCExpression>nil(),
makeIdentOrSelect(expr, Util.getSetterName(decl.getName())),
List.<JCTree.JCExpression>of(rhs));
}
} else if (variable && (Decl.isClassAttribute(decl))) {
// must use the setter
result = at(op).Apply(List.<JCTree.JCExpression>nil(),
makeIdentOrSelect(expr, Util.getSetterName(decl.getName())),
List.<JCTree.JCExpression>of(rhs));
} else if (variable && (decl.isCaptured() || decl.isShared())) {
// must use the qualified setter
result = at(op).Apply(List.<JCTree.JCExpression>nil(),
After Change
return transformAssignment(op, leftTerm, expr, rhs);
}
JCExpression transformAssignment(Node op, Term leftTerm, JCExpression expr, JCExpression rhs) {
JCExpression result = null;
// FIXME: can this be anything else than a Primary?
TypedDeclaration decl = (TypedDeclaration) ((Tree.Primary)leftTerm).getDeclaration();
boolean variable = decl.isVariable();
at(op);
if (decl.isToplevel()) {
// must use top level setter
result = makeSetter(rhs, makeFQIdent(decl.getContainer().getQualifiedNameString()), Util.quoteIfJavaKeyword(decl.getName()), Util.getSetterName(decl.getName()));
} else if ((decl instanceof Getter)) {
// must use the setter
if (Decl.withinMethod(decl)) {
result = makeSetter(rhs, makeIdentOrSelect(expr, decl.getName() + "$setter", Util.getSetterName(decl.getName())));
} else {
result = makeSetter(rhs, makeIdentOrSelect(expr, Util.getSetterName(decl.getName())));
}
} else if (variable && (Decl.isClassAttribute(decl))) {
// must use the setter
result = makeSetter(rhs, makeIdentOrSelect(expr, Util.getSetterName(decl.getName())));
} else if (variable && (decl.isCaptured() || decl.isShared())) {
// must use the qualified setter
result = makeSetter(rhs, makeIdentOrSelect(expr, decl.getName(), Util.getSetterName(decl.getName())));